package com.dd.cloud.user.DTO.km;

import com.dd.cloud.common.utils.AESUtil;
import com.dd.cloud.user.DTO.CommonParamReq;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 物流上报参数
 * </p>
 *
 * @author czg
 * @since 2022-07-19
 */
@Data
public class KmExpressReportReq extends CommonParamReq implements Serializable {
    /**
     * 自定义参数, 即我方自己设置值,定义为key值aes对称加密参数
     */
    @NotBlank(message = "自定义参数param不能为空")
    private String param;

    /**
     * 物流通知类型	必须
     * type=1表示物流出库通知；
     * type=2 表示物流派送完毕通知；
     */
    @NotBlank(message = "类型 1出库 2签收")
    private Integer type;

    /**
     * 物流单号	非必须	type=1时会传
     */
    private String wayBillNo;

    /**
     * 物流公司	非必须	type=1时会传
     */
    private String logisCompanyName;

    /**
     * 康美订单号    非必须	type=2时会传
     */
    private String kmOrderno;

    /**
     * 签收时间	非必须	type=2时会传
     */
    private LocalDateTime receivingTime;

    /**
     * 解密参数,是否被篡改信息
     *
     * @return false 解密失败 true 解密成功
     */
    public boolean decrypt() {
        try {
            System.out.println("param:" + this.param);
            this.param = AESUtil.decrypt(this.param, AESUtil.SECRET_KEY);
            System.out.println("param:" + this.param);
            if (this.param == null) {
                return false;
            }
        } catch (Exception e) {
            return false;
        }
        return true;
    }
}
